
// 实现可迭代接口 Iterable
// const obj = {
//   [Symbol.iterator]:function (){ // iterable
//     return {
//       next: function () { // iterator
//         return {  // iterationResult 
//           value: '小a',
//           done: true
//         }
//       }
//     }
//   }
// }

const obj = {
  store:['foo', 'bar', 'baz'],
  [Symbol.iterator]:function (){ // iterable
    let index = 0
    const self = this

    return {
      next: function () { // iterator
        const result =  {  // iterationResult 
          value: self.store[index],
          done: index >= self.store.length
        }
        index++
        return result
      }
    }
  }
}
for (const item of obj){
  console.log(item)
}

// 迭代器有什么用？